package com.framework.dao;

import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.framework.entity.ter.TerMerchantReport;
import com.framework.view.TerminalOwnDto;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 功能描述: 终端商户宝贝
 *
 * @author ck
 * @date 2018/9/6 13:54
 */
public interface MerchantDao extends BaseMapper<TerMerchantReport> {
	/**
	 * 查询商户报备数量
	 * @param agentId 代理商所属ids
	 * @param type 1：昨天的数据 2：本月的数据
	 * @param isOwn
	 * @return
	 *
	 */
	int queryMerchantCount(@Param("agentId") Long agentId, @Param("type") Integer type,@Param("isOwn")Integer isOwn);

	/**
	 * 根据sn查询终端所属信息
	 * @param sn
	 * @return
	 */
	TerminalOwnDto queryMerchantOwnInfo(@Param("sn") String sn);

	/**
	 * 查询昨天交易金额
	 * @param agnetId
	 * @return
	 */
	BigDecimal queryToDayAmountSum(@Param("agentId")Long agnetId);


	/**
	 * 查询渠道下的商户信息
	 * @param params
	 * @return
	 */
	List<Map<String, Object>> queryMerchantInfoList(Map<String, Object> params);

	/**
	 * 查询渠道下的商户数量
	 * @param params
	 * @return
	 */
	Integer queryMerchantInfoCount(Map<String, Object> params);

	/**
	 *根据报备id查询
	 * @param reportId
	 * @param deptId
	 * @return
	 */
	Map<String, Object> queryMerchantByReportId(@Param("reportId") String reportId, @Param("deptId") Long deptId);


	/**
	 * 根据reportId获取相关信息
	 * @param reportId
	 * @return
	 */
    Map<String, Object> getMerchantById(@Param("reportId") String reportId);

	/**
	 * 商户列表
	 * @param deptId
	 * @return
	 */
	List<TerMerchantReport> queryAllMerchantList(@Param("deptId") Long deptId);

	/**
	 * 删除
	 * @param reportId
	 */
    void deleteMerById(@Param("reportId") String reportId);

	/**
	 * 新商户列表
	 * @param params
	 * @return
	 */
    List<Map<String, Object>> queryNewMerchantList(Map<String, Object> params);

	/**
	 * 根据id查询商户详情
	 *
	 * @param reportId
	 * @param deptId
	 * @return
	 */
	Map<String, Object> queryMerchantById(@Param("reportId") String reportId, @Param("deptId") Long deptId);

	/**
	 * 检查报备信息与终端所属不一样的列表
	 * @return
	 */
	List<TerMerchantReport> checkMerchantAndDis();

	/**
	 * 获取百易当月连续激活数量达标30的列表
	 * @return
	 */
    List<Map<String, Object>> queryActivAgent();
}
